home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
basic
/
vericard.bas
< prev
next >
Wrap
BASIC Source File
|
1990-08-26
|
1KB
|
55 lines
'The following routine uses a checksum algorithm to verify credit card #'s:
'QuickBASIC translation done by Public (software) Library, 713-524-6394,
'from a Turbo Pascal routine done by
'
'Daniel J. Karnes
'1 Baron Park #20
'Burlington, MA 01803
'
'CIS: 71240,3407
'
'Karnes requested $5 for the use of the compiled program, but didn't mention
'the use of the code, though he refers to it as public domain and the
'checksum algorithm is widely known.
C$=""
DIM CCtype$(3)
CCtype$(1) = "American Express"
CCtype$(2) = "Visa"
CCtype$(3) = "MasterCard"
CCtype$(4) = "Discover"
INPUT "Enter Credit Card #: "; CC$
FOR i = 1 TO LEN(CC$)
x$ = MID$(CC$, I, 1)
IF x$ => 0 AND x$ <= 9 THEN C$ = C$ + x$
NEXT
n = LEN(C$)
IF n/2 = n\2 THEN
FOR I = I TO 1 STEP -1
X=ASC(MID$(C$,I,1))
IF I\2 <> I/2 THEN Y = (X-48)*2 ELSE Y = (X-48)
IF Y>=10 THEN Y = Y - 9
XCARD = XCARD + Y
NEXT
ELSE
FOR I = LEN(C$) TO 1 STEP -1
X = ASC(MID$(C$,I,1))
IF I\2 <> I/2 THEN Y = (X-48) ELSE Y = (X-48)*2
IF Y>=10 THEN Y = Y - 9
XCARD = XCARD + Y
NEXT
END IF
X = 10 - (XCARD MOD 10)
IF X = 10 THEN X = 0
t = VAL(LEFT$(C$, 1))
IF t => 3 AND t <= 6 THEN
PRINT CCtype$(t-2) " checksum ";
IF X = 0 THEN PRINT "good" ELSE PRINT "bad"
ELSE
PRINT "Unrecognized Card"
END IF